/*
 * @File    :   test.js
 * @Time    :   2024/03/11 22:28:19
 * @Author  :   chakcy
 * @Email   :   947105045@qq.com
 * @description   :   测试
 */

// // 引入common模块中的runAllScripts和runExecutablesInParallel方法
// const { runAllScripts, runExecutablesInParallel } = require('./common')

// // 定义包含脚本信息的数据
// let data = [
//     {
//         "scriptPath": "../dist/main.py",
//         "args": { "task_name": "task", "args": "111" }
//     },
//     {
//         "scriptPath": "../dist/main.py",
//         "args": { "task_name": "tiktok", "args": "222" }
//     },
//     {
//         "scriptPath": "../dist/main.py",
//         "args": { "task_name": "init_chrome_driver" }
//     }
// ]

// // 顺序运行所有脚本并处理结果
// runAllScripts(data).then(results => {
//     console.log(results)
// }).catch(error => {
//     console.error('Failed to get results:', error)
// });

// // 定义包含可执行文件信息的数据
// data = [
//     {
//         "path": "..\\dist\\main.exe",
//         "args": { "task_name": "task", "args": "111" }
//     },
//     {
//         "path": "..\\dist\\main.exe",
//         "args": { "task_name": "tiktok", "args": "222" }
//     },
//     {
//         "path": "..\\dist\\main.exe",
//         "args": { "task_name": "init_chrome_driver" }
//     }
// ]

// // 并行运行所有可执行文件并处理结果
// runExecutablesInParallel(data).then(results => {
//     console.log(results)
// }).catch(error => {
//     console.error('Failed to get results:', error)
// });

// const { DataTable } = require('./common')
// const { sqliteConnectionPool } = require('./common')
// const path = require('path')

// // 创建连接池
// const pool = new sqliteConnectionPool(path.join(__dirname, "../../db/database.db"), 5)

// // 用户操作
// async function usersOperation(pool) {
//     // 获取连接
//     const db = await pool.acquire().catch(err => {
//         console.error(err)
//     })
//     // 定义数据表
//     const users = new DataTable(path.join(__dirname, "./common/mapper/users"), db)

//     // 根据id查询用户
//     const result = await users.execute('getUserById', [
//         { name: 'id', value: 1 }
//     ]).catch(err => {
//         console.error(err)
//     })
//     console.log("getUserById", result)

//     // 插入用户
//     await users.execute('insertUser', [
//         { name: 'name', value: 'chakcy' },
//         { name: 'email', value: '947105045@qq.com' },
//         { name: 'password', value: '123456' }
//     ]).catch(err => {
//         console.error(err)
//     })

//     // 查询所有用户
//     const allUsers = await users.execute('getAllUsers', []).catch(err => {
//         console.error(err)
//     })
//     console.log("getAllUsers", allUsers)

// }

// // 执行用户操作
// usersOperation(pool)

const { sendMultipleSocketRequests } = require('./common')
// 使用示例：  

// executePython.js  
const { spawn } = require('child_process')

// function closePythonServer(process) {
//     if (process.stdin && process.stdin.writable) {
//         process.stdin.write('shutdown\n')
//     }
//     process.on('close', (code) => {
//         console.log(`Python server closed with code ${code}`)
//     });
// }

async function SocketSend() {
    // const process = spawn('..\\dist\\main.exe', [])
    let data = [
        { port: 8888, message: { "task_name": "tiktok", "args": "111" } }
    ]
    try {
        let result = await sendMultipleSocketRequests(data)
        console.log(result)
    } catch (error) {
        console.error('Failed to get results:', error)
    }
    // finally {
    //     console.log('Closing Python server')
    //     if (process) {
    //         // Ensure the process is still alive before attempting to close and kill it
    //         if (!process.killed) {
    //             closePythonServer(process)
    //         }
    //     }
    // }

}

SocketSend()